<!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Struts2的OGNL语言使用测试</title>
		<!-- 设置不缓存 -->
		<meta http-equiv="pragma" content="no-cache" />
		<meta http-equiv="cache-control" content="no-cache" />
		<meta http-equiv="expires" content="0" />
	</head>
	<body>
		<h1>
			Struts2的OGNL语言使用测试<br/>
			<span style="color:blue;">总结：若不在Struts2标签中，使用$符号；若在Struts2标签中，使用#符号。</span>
			<br>
			<span style="color:red;">红色：表示当前行的示例方案是不可行的，不能采用。</span>黑色：表示当前行的示例方案是可行的，可以采用。
		</h1>
		<h2>
			结果页面，显示提交的结果
		</h2>
		
    
     
     <table border="2" cellpadding="5">
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">行号</td>
	     	<td style="text-align: center;font-weight: bolder;">测试目标</td>
	     	<td style="text-align: center;font-weight: bolder;">语法方案</td>
	     	<td style="text-align: center;font-weight: bolder;">语法格式</td>
	     	<td style="text-align: center;font-weight: bolder;">使用示例</td>
	     	<td style="text-align: center;font-weight: bolder;">结果显示</td>
	     	<td style="text-align: center;font-weight: bolder;">相应赋值示例</td>
	     	<td style="text-align: center;font-weight: bolder;">可行性</td>
	     	<td style="text-align: center;font-weight: bolder;">总结</td>
	     	<td style="text-align: center;font-weight: bolder;">备注（前提、要求）</td>
	     </tr>
	     <!-- 测试访问提交的简单参数 -->
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">1</td>
	     	<td rowspan="5">输出提交的简单参数</td>
	     	<td>Java脚本</td>
	     	<td>&lt;%=request.getParameter(&quot;简单参数名&quot;) %&gt;</td>
	     	<td>&lt;%=request.getParameter(&quot;name&quot;) %&gt;</td>
	     	<td>cba</td>
	     	<td>&lt;input name="name" value=""&gt;或url?name=xxxxx</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td></td>
	     	<td></td>
	     </tr>
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">2</td>
	     	<td>EL表达式语言</td>
	     	<td>（1）${param['简单参数名'] } 或（2）${param.简单参数名 } 或（3）${paramValues['简单参数名'][0] } 或（4）${paramValues.简单参数名[0] } </td>
	     	<td>（1）${param['name'] } 或（2）${param.name } 或（3）${paramValues['name'][0] } 或（4）${paramValues.name[0] } </td>
	     	<td>（1）cba 或（2）cba 或（3）cba 或（4）cba </td>
	     	<td>同上</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td></td>
	     	<td>JSP页面支持EL表达式</td>
	     </tr>
	     <tr style="color: red">
	     	<td style="text-align: center;font-weight: bolder;">3</td>
	     	<td>EL表达式语言（测试）</td>
	     	<td>${简单参数名 }</td>
	     	<td>${name }</td>
	     	<td><br/>说明：此处看到有结果显示，但实际上并不是EL表达式显示出来的，其实是由OGNL表达式语言显示出来的。另外，如果输入页面使用了Strut2的token标签和防刷新token拦截器，此处也是没有结果显示的。</td>
	     	<td>同上</td>
	     	<td style="color: red;font-weight: bolder;">NO</td>
	     	<td>说明：此处看到有结果显示，但实际上并不是EL表达式显示出来的，其实是由OGNL表达式语言显示出来的。另外，如果输入页面使用了Strut2的token标签和防刷新token拦截器，此处也是没有结果显示的。</td>
	     	<td>JSP页面支持EL表达式</td>
	     </tr>
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">4</td>
	     	<td>OGNL表达式语言</td>
	     	<td>（1）${简单参数名 } 或（2）${parameters['简单参数名'][0] } 或（3）${parameters.简单参数名[0] } 或（4）&lt;s:property value="简单参数名"/&gt; 或（5）&lt;s:property value="#parameters['简单参数名']"/&gt; 或（6）&lt;s:property value="#parameters.简单参数名"/&gt; 或（7）&lt;s:property value="#parameters['简单参数名'][0]"/&gt; 或（8）&lt;s:property value="#parameters.简单参数名[0]"/&gt; 或（9） ${request['简单参数名'] } 或（10） ${request.简单参数名 } 或（11） ${requestScope['简单参数名'] } 或（12） ${requestScope.简单参数名 } </td>
	     	<td>（1）${name } 或（2）${parameters['name'][0] } 或（3）${parameters.name[0] } 或（4）&lt;s:property value="name"/&gt; 或（5）&lt;s:property value="#parameters['name']"/&gt; 或（6）&lt;s:property value="#parameters.name"/&gt; 或（7）&lt;s:property value="#parameters['name'][0]"/&gt; 或（8）&lt;s:property value="#parameters.name[0]"/&gt; 或（9） ${request['name'] } 或（10） ${request.name } 或（11） ${requestScope['name'] } 或（12） ${requestScope.name } </td>
	     	<td>（1） 或（2）cba 或（3）cba 或（4） 或（5）cba 或（6）cba 或（7）cba 或（8）cba 或（9）  或（10） 或（11）  或（12）  <br/>
	     		<span style="color:blue;">注意：这里的方式（9）、（10）、（11）和（12）并不是EL表达式语言得出的结果，而是OGNL语言得出的结果，并且只在JSP页面支持OGNL表达式语言时（即提交到Struts2的Action返回到JSP中后）才可以这样使用。另外，如果输入页面使用了Strut2的token标签和防刷新token拦截器，这里的方式（1）、（4）、（9）、（10）、（11）和（12）都将会没有结果显示的。</span> 
	     	</td>
	     	<td>同上</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td>注意：这里的方式（9）、（10）、（11）和（12）并不是EL表达式语言得出的结果，而是OGNL语言得出的结果，并且只在JSP页面支持OGNL表达式语言时（即提交到Struts2的Action返回到JSP中后）才可以这样使用。另外，如果输入页面使用了Strut2的token标签和防刷新token拦截器，这里的方式（1）、（4）、（9）、（10）、（11）和（12）都将会没有结果显示的。</td>
	     	<td>JSP页面支持OGNL表达式</td>
	     </tr>
	     <tr style="color: red">
	     	<td style="text-align: center;font-weight: bolder;">5</td>
	     	<td>OGNL表达式语言（测试）</td>
	     	<td>（1）${parameters['简单参数名'] } 或（2）${parameters.简单参数名 }  </td>
	     	<td>（1）${parameters['name'] } 或（2）${parameters.name }  </td>
	     	<td>（1）[Ljava.lang.String;@1d2052b 或（2）[Ljava.lang.String;@1d2052b  <br/>
	     		说明：显示的是参数对象.toString()值，而不是参数的属性值。
	     	</td>
	     	<td>同上</td>
	     	<td style="color: red;font-weight: bolder;">NO</td>
	     	<td>说明：显示的是参数对象.toString()值，而不是参数的属性值。</td>
	     	<td>JSP页面支持OGNL表达式</td>
	     </tr>
	     
	     <!-- 测试访问提交的复杂参数 -->
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">6</td>
	     	<td rowspan="5">输出提交的复杂参数</td>
	     	<td>Java脚本</td>
	     	<td>&lt;%=request.getParameter(&quot;复杂参数名&quot;) %&gt;</td>
	     	<td>&lt;%=request.getParameter(&quot;user.name&quot;) %&gt;</td>
	     	<td>abc</td>
	     	<td>&lt;input name="user.name" value=""&gt;或url?user.name=xxxxx</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td></td>
	     	<td></td>
	     </tr>
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">7</td>
	     	<td>EL表达式语言</td>
	     	<td>（1）${param['复杂参数名'] } 或（2）${paramValues['复杂参数名'][0] } </td>
	     	<td>（1）${param['user.name'] } 或（2）${paramValues['user.name'][0] }  </td>
	     	<td>（1）abc 或（2）abc </td>
	     	<td>同上</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td></td>
	     	<td>JSP页面支持EL表达式</td>
	     </tr>
	     <tr style="color: red">
	     	<td style="text-align: center;font-weight: bolder;">8</td>
	     	<td>EL表达式语言（测试）</td>
	     	<td>（1）${复杂参数名 } 或（2）${param.复杂参数名 } 或（3）${paramValues.复杂参数名[0] } </td>
	     	<td>（1）${user.name } 或（2）${param.user.name } 或（3）${paramValues.user.name[0] } </td>
	     	<td>（1） 或（2） 或（3） <br/>说明：此处的方式（1）、（2）、和（3）应该都是没有结果的，但方式（1）看到有结果显示，实际上并不是EL表达式显示出来的，其实是由OGNL表达式语言显示出来的。另外，如果输入页面使用了Strut2的token标签和防刷新token拦截器，此处的（1）也是没有结果显示的。</td>
	     	<td>同上</td>
	     	<td style="color: red;font-weight: bolder;">NO</td>
	     	<td>此处的方式（1）、（2）、和（3）应该都是没有结果的，但方式（1）看到有结果显示，实际上并不是EL表达式显示出来的，其实是由OGNL表达式语言显示出来的。另外，如果输入页面使用了Strut2的token标签和防刷新token拦截器，此处的（1）也是没有结果显示的。</td>
	     	<td>JSP页面支持EL表达式</td>
	     </tr>
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">9</td>
	     	<td>OGNL表达式语言</td>
	     	<td>（1）${复杂参数名 } 或（2）${parameters['复杂参数名'][0] } 或（3）&lt;s:property value="复杂参数名"/&gt; 或（4）&lt;s:property value="#parameters['复杂参数名']"/&gt; 或（5）&lt;s:property value="#parameters['复杂参数名'][0]"/&gt; 或（9） ${request['复杂参数名'] } 或（10） ${request.复杂参数名 } 或（11） ${requestScope['复杂参数名'] } 或（12） ${requestScope.复杂参数名 } 或（13）&lt;s:property value="中括号方式的复杂参数名"/&gt; </td>
	     	<td>（1）${user.name } 或（2）${parameters['user.name'][0] } 或（3）&lt;s:property value="user.name"/&gt; 或（4）&lt;s:property value="#parameters['user.name']"/&gt; 或（5）&lt;s:property value="#parameters['user.name'][0]"/&gt; 或（9） ${request['user.name'] } 或（10） ${request.user.name } 或（11） ${requestScope['user.name'] } 或（12） ${requestScope.user.name } 或（13）&lt;s:property value="user['name']"/&gt; </td>
	     	<td>（1） 或（2）abc 或（3） 或（4）abc 或（5）abc 或（9）  或（10）  或（11）  或（12）  或（13）  <br/>
	     		<span style="color:blue;">注意：这里的方式（9）、（10）、（11）和（12）并不是EL表达式语言得出的结果，而是OGNL语言得出的结果，并且只在JSP页面支持OGNL表达式语言时（即提交到Struts2的Action返回到JSP中后）才可以这样使用。另外，如果输入页面使用了Strut2的token标签和防刷新token拦截器，这里的方式（1）、（3）、（9）、（10）、（11）、（12）和（13）都将会没有结果显示的。</span>
	     	</td>
	     	<td>同上</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td>注意：这里的方式（9）、（10）、（11）和（12）并不是EL表达式语言得出的结果，而是OGNL语言得出的结果，并且只在JSP页面支持OGNL表达式语言时（即提交到Struts2的Action返回到JSP中后）才可以这样使用。另外，如果输入页面使用了Strut2的token标签和防刷新token拦截器，这里的方式（1）、（3）、（9）、（10）、（11）、（12）和（13）都将会没有结果显示的。</td>
	     	<td>JSP页面支持OGNL表达式</td>
	     </tr>
	     <tr style="color: red">
	     	<td style="text-align: center;font-weight: bolder;">10</td>
	     	<td>OGNL表达式语言（测试）</td>
	     	<td>（1）${parameters.复杂参数名 } 或（2）${parameters['复杂参数名'] } 或（3）${parameters.复杂参数名[0] } 或（4）&lt;s:property value="#parameters.复杂参数名"/&gt; 或（5）&lt;s:property value="#parameters.复杂参数名[0]"/&gt; </td>
	     	<td>（1）${parameters.user.name } 或（2）${parameters['user.name'] } 或（3）${parameters.user.name[0] } 或（4）&lt;s:property value="#parameters.user.name"/&gt; 或（5）&lt;s:property value="#parameters.user.name[0]"/&gt; </td>
	     	<td>（1） 或（2）[Ljava.lang.String;@13a1324 或（3） 或（4） 或（5） <br/>
	     		说明：此处（2）显示的是参数对象.toString()值，而不是参数的属性值。
	     	</td>
	     	<td>同上</td>
	     	<td style="color: red;font-weight: bolder;">NO</td>
	     	<td>说明：此处（2）显示的是参数对象.toString()值，而不是参数的属性值。</td>
	     	<td>JSP页面支持OGNL表达式</td>
	     </tr>
	     
	     <!-- 测试访问pageContext内置对象 -->
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">11</td>
	     	<td rowspan="3">访问pageContext内置对象</td>
	     	<td>Java脚本</td>
	     	<td>&lt;%=pageContext.getAttribute(&quot;参数名&quot;) %&gt;</td>
	     	<td>&lt;%=pageContext.getAttribute(&quot;pp&quot;) %&gt;</td>
	     	<td>pppppp</td>
	     	<td>（1）&lt;%pageContext.setAttribute("pp","pppppp"); %&gt; <br/>
	     		（2）&lt;%pageContext.setAttribute("pp","pppppp",PageContext.PAGE_SCOPE); %&gt;
	     	</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td></td>
	     	<td></td>
	     </tr>
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">12</td>
	     	<td>EL表达式语言</td>
	     	<td>（1）${pageScope['参数名'] } 或（2）${pageScope.参数名 } 或（3）${参数名 } </td>
	     	<td>（1）${pageScope['pp'] } 或（2）${pageScope.pp } 或（3）${pp } </td>
	     	<td>（1）pppppp 或（2）pppppp 或（3）pppppp </td>
	     	<td>同上</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td>推荐使用方式（1），因为方式（2）和（3）对于复杂参数名无效。同时，方式（3）的取值优先级为pageContext>request>session>application，当较高优先级中有值时，不会再往下查找值。</td>
	     	<td>JSP页面支持EL表达式</td>
	     </tr>
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">13</td>
	     	<td>OGNL表达式语言</td>
	     	<td>（1）${attr['参数名'] } 或（2）${attr.参数名 } 或（3）&lt;s:property value="#attr['参数名']"/&gt; 或（4）&lt;s:property value="#attr.参数名"/&gt;  </td>
	     	<td>（1）${attr['pp'] } 或（2）${attr.pp } 或（3）&lt;s:property value="#attr['pp']"/&gt; 或（4）&lt;s:property value="#attr.pp"/&gt;  </td>
	     	<td>（1）pppppp 或（2）pppppp 或（3）pppppp 或（4）pppppp </td>
	     	<td>同上</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td></td>
	     	<td>JSP页面支持OGNL表达式</td>
	     </tr>
	     
	     <!-- 测试访问request内置对象 -->
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">14</td>
	     	<td rowspan="3">访问request内置对象</td>
	     	<td>Java脚本</td>
	     	<td>&lt;%=request.getAttribute(&quot;参数名&quot;) %&gt;</td>
	     	<td>&lt;%=request.getAttribute(&quot;rr&quot;) %&gt;</td>
	     	<td>rrrrrrrr</td>
	     	<td>（1）&lt;%request.setAttribute("rr","rrrrrr"); %&gt; <br/>
	     		（2）&lt;%pageContext.setAttribute("rr","rrrrrr",PageContext.REQUEST_SCOPE); %&gt;
	     	</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td></td>
	     	<td></td>
	     </tr>
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">15</td>
	     	<td>EL表达式语言</td>
	     	<td>（1）${requestScope['参数名'] } 或（2）${requestScope.参数名 } 或（3）${参数名 } </td>
	     	<td>（1）${requestScope['rr'] } 或（2）${requestScope.rr } 或（3）${rr } </td>
	     	<td>（1）rrrrrrrr 或（2）rrrrrrrr 或（3）rrrrrrrr </td>
	     	<td>同上</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td>推荐使用方式（1），因为方式（2）和（3）对于复杂参数名无效。同时，方式（3）的取值优先级为pageContext>request>session>application，当较高优先级中有值时，不会再往下查找值。</td>
	     	<td>JSP页面支持EL表达式</td>
	     </tr>
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">16</td>
	     	<td>OGNL表达式语言</td>
	     	<td>（1）${attr['参数名'] } 或（2）${attr.参数名 } 或（3）${request['参数名'] } 或（4）${request.参数名 } 或（5）&lt;s:property value="#request.参数名"/&gt; 或（6）&lt;s:property value="#request['参数名']"/&gt; 或（7）&lt;s:property value="#attr['参数名']"/&gt; 或（8）&lt;s:property value="#attr.参数名"/&gt;  </td>
	     	<td>（1）${attr['rr'] } 或（2）${attr.rr } （3）${request['rr'] } 或（4）${request.rr } 或（5）&lt;s:property value="#request.rr"/&gt; 或（6）&lt;s:property value="#request['rr']"/&gt; 或（7）&lt;s:property value="#attr['rr']"/&gt; 或（8）&lt;s:property value="#attr.rr"/&gt;  </td>
	     	<td>（1）rrrrrrrr 或（2）rrrrrrrr （3）rrrrrrrr 或（4）rrrrrrrr 或（5）rrrrrrrr 或（6）rrrrrrrr 或（7）rrrrrrrr 或（8）rrrrrrrr </td>
	     	<td>同上</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td>注意，方式（1）和方式（2）的取值优先级为pageContext>request>session>application，当较高优先级中有值时，不会再往下查找值。</td>
	     	<td>JSP页面支持OGNL表达式</td>
	     </tr>
	     
	     <!-- 测试访问session内置对象 -->
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">17</td>
	     	<td rowspan="3">访问session内置对象</td>
	     	<td>Java脚本</td>
	     	<td>&lt;%=session.getAttribute(&quot;参数名&quot;) %&gt;</td>
	     	<td>&lt;%=session.getAttribute(&quot;ss&quot;) %&gt;</td>
	     	<td>ssssssss</td>
	     	<td>（1）&lt;%session.setAttribute("ss","ssssss"); %&gt; <br/>
	     		（2）&lt;%pageContext.setAttribute("ss","ssssss",PageContext.SESSION_SCOPE); %&gt;
	     	</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td></td>
	     	<td></td>
	     </tr>
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">18</td>
	     	<td>EL表达式语言</td>
	     	<td>（1）${sessionScope['参数名'] } 或（2）${sessionScope.参数名 } 或（3）${参数名 } </td>
	     	<td>（1）${sessionScope['ss'] } 或（2）${sessionScope.ss } 或（3）${ss } </td>
	     	<td>（1）ssssssss 或（2）ssssssss 或（3）ssssssss </td>
	     	<td>同上</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td>推荐使用方式（1），因为方式（2）和（3）对于复杂参数名无效。同时，方式（3）的取值优先级为pageContext>request>session>application，当较高优先级中有值时，不会再往下查找值。</td>
	     	<td>JSP页面支持EL表达式</td>
	     </tr>
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">19</td>
	     	<td>OGNL表达式语言</td>
	     	<td>（1）${attr['参数名'] } 或（2）${attr.参数名 } 或（3）${session['参数名'] } 或（4）${session.参数名 } 或（5）&lt;s:property value="#session.参数名"/&gt; 或（6）&lt;s:property value="#session['参数名']"/&gt; 或（7）&lt;s:property value="#attr['参数名']"/&gt; 或（8）&lt;s:property value="#attr.参数名"/&gt;  </td>
	     	<td>（1）${attr['ss'] } 或（2）${attr.ss } 或（3）${session['ss'] } 或（4）${session.ss } 或（5）&lt;s:property value="#session.ss"/&gt; 或（6）&lt;s:property value="#session['ss']"/&gt; 或（7）&lt;s:property value="#attr['ss']"/&gt; 或（8）&lt;s:property value="#attr.ss"/&gt;  </td>
	     	<td>（1）ssssssss 或（2）ssssssss 或（3）ssssssss 或（4）ssssssss 或（5）ssssssss 或（6）ssssssss 或（7）ssssssss 或（8）ssssssss </td>
	     	<td>同上</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td></td>
	     	<td>JSP页面支持OGNL表达式</td>
	     </tr>
	     
	     <!-- 测试访问application内置对象 -->
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">20</td>
	     	<td rowspan="3">访问application内置对象</td>
	     	<td>Java脚本</td>
	     	<td>&lt;%=application.getAttribute(&quot;参数名&quot;) %&gt;</td>
	     	<td>&lt;%=application.getAttribute(&quot;aa&quot;) %&gt;</td>
	     	<td>aaaaaaaaaa</td>
	     	<td>（1）&lt;%application.setAttribute("aa","aaaaaa"); %&gt; <br/>
	     		（2）&lt;%pageContext.setAttribute("aa","aaaaaa",PageContext.APPLICATION_SCOPE); %&gt;
	     	</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td></td>
	     	<td></td>
	     </tr>
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">21</td>
	     	<td>EL表达式语言</td>
	     	<td>（1）${applicationScope['参数名'] } 或（2）${applicationScope.参数名 } 或（3）${参数名 } </td>
	     	<td>（1）${applicationScope['aa'] } 或（2）${applicationScope.aa } 或（3）${aa } </td>
	     	<td>（1）aaaaaaaaaa 或（2）aaaaaaaaaa 或（3）aaaaaaaaaa </td>
	     	<td>同上</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td>推荐使用方式（1），因为方式（2）和（3）对于复杂参数名无效。同时，方式（3）的取值优先级为pageContext>request>session>application，当较高优先级中有值时，不会再往下查找值。</td>
	     	<td>JSP页面支持EL表达式</td>
	     </tr>
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">22</td>
	     	<td>OGNL表达式语言</td>
	     	<td>（1）${attr['参数名'] } 或（2）${attr.参数名 } 或（3）${application['参数名'] } 或（4）${application.参数名 } 或（5）&lt;s:property value="#application.参数名"/&gt; 或（6）&lt;s:property value="#application['参数名']"/&gt; 或（7）&lt;s:property value="#attr['参数名']"/&gt; 或（8）&lt;s:property value="#attr.参数名"/&gt;  </td>
	     	<td>（1）${attr['aa'] } 或（2）${attr.aa } 或（3）${application['aa'] } 或（4）${application.aa } 或（5）&lt;s:property value="#application.aa"/&gt; 或（6）&lt;s:property value="#application['aa']"/&gt; 或（7）&lt;s:property value="#attr['aa']"/&gt; 或（8）&lt;s:property value="#attr.aa"/&gt;  </td>
	     	<td>（1）aaaaaaaaaa 或（2）aaaaaaaaaa 或（3）aaaaaaaaaa 或（4）aaaaaaaaaa 或（5）aaaaaaaaaa 或（6）aaaaaaaaaa 或（7）aaaaaaaaaa 或（8）aaaaaaaaaa </td>
	     	<td>同上</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td></td>
	     	<td>JSP页面支持OGNL表达式</td>
	     </tr>
	     
	     <!-- 测试访问cookie内置对象 -->
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">23</td>
	     	<td rowspan="2">访问cookie内置对象</td>
	     	<td>Java脚本</td>
	     	<td>
<pre>
&lt;% 
Cookie[] cookies = request.getCookies();
if(cookies!=null){
for(Cookie cc:cookies){
	if(cc.getName().equals("参数key名")){
		out.print(cc.getValue());
	}
}
}
%&gt;
</pre>
	     	</td>
	     	<td>
<pre>
&lt;% 
Cookie[] cookies = request.getCookies();
if(cookies!=null){
for(Cookie cc:cookies){
	if(cc.getName().equals("cc")){
		out.print(cc.getValue());
	}
}
}
%&gt;
</pre>
	     	</td>
	     	<td>
		     	cccccc
	     	</td>
	     	<td>
<pre>
&lt;% 
Cookie ck = new Cookie("cc","cccccc");
ck.setMaxAge(24*3600);
response.addCookie(ck);
%&gt;
</pre>
	     	</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td></td>
	     	<td></td>
	     </tr>
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">24</td>
	     	<td>EL表达式语言</td>
	     	<td>（1）${cookie['参数key名'].value } 或（2）${cookie.参数key名.value } </td>
	     	<td>（1）${cookie['cc'].value } 或（2）${cookie.cc.value } </td>
	     	<td>（1）cccccc 或（2）cccccc </td>
	     	<td>同上</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td>推荐使用方式（1），因为方式（2）对于复杂参数key名无效。</td>
	     	<td>JSP页面支持EL表达式</td>
	     </tr>
	     
	     <!-- 测试访问请求头header信息 -->
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">25</td>
	     	<td rowspan="2">访问请求头header信息</td>
	     	<td>Java脚本</td>
	     	<td>&lt;%=request.getHeader("参数名") %&gt;</td>
	     	<td>&lt;%=request.getHeader("host") %&gt;</td>
	     	<td>localhost:8080</td>
	     	<td>请求头header不需要赋值</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td></td>
	     	<td></td>
	     </tr>
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">26</td>
	     	<td>EL表达式语言</td>
	     	<td>（1）${header['参数名'] } 或（2）${header.参数名 } 或（3）${headerValues['参数名'][0] } 或（4）${headerValues.参数名[0] } </td>
	     	<td>（1）${header['host'] } 或（2）${header.host } 或（3）${headerValues['host'][0] } 或（4）${headerValues.host[0] } </td>
	     	<td>（1）localhost:8080 或（2）localhost:8080 或（3）localhost:8080 或（4）localhost:8080 </td>
	     	<td>同上</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td>推荐使用方式（1）和（3），因为方式（2）和（4）对于复杂参数名无效。</td>
	     	<td>JSP页面支持EL表达式</td>
	     </tr>
	     
	     <!-- 测试访问Web应用的初始配置参数 -->
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">27</td>
	     	<td rowspan="2">访问Web应用的初始配置参数</td>
	     	<td>Java脚本</td>
	     	<td>&lt;%=application.getInitParameter("参数名") %&gt;</td>
	     	<td>（1）&lt;%=application.getInitParameter("abcd") %&gt; <br/>
	     		（2）&lt;%=this.getServletContext().getInitParameter("abcd") %&gt;
	     	</td>
	     	<td>（1）12358 或（2）12358</td>
	     	<td>
<pre>
配置Web应用的web.xml文件：
&lt;context-param&gt;
	&lt;param-name&gt;abcd&lt;/param-name&gt;
	&lt;param-value&gt;12358&lt;/param-value&gt;
&lt;/context-param&gt;
</pre>
	     	</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td></td>
	     	<td></td>
	     </tr>
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">28</td>
	     	<td>EL表达式语言</td>
	     	<td>（1）${initParam['参数名'] } 或（2）${initParam.参数名 } </td>
	     	<td>（1）${initParam['abcd'] } 或（2）${initParam.abcd } </td>
	     	<td>（1）12358 或（2）12358 </td>
	     	<td>同上</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td>推荐使用方式（1），因为方式（2）对于复杂参数名无效。</td>
	     	<td>JSP页面支持EL表达式</td>
	     </tr>
	     
	     <!-- 测试获取所有的请求参数 （Map）-->
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">29</td>
	     	<td rowspan="3">测试获取所有的请求参数（Map）</td>
	     	<td>Java脚本</td>
	     	<td>&lt;%=request.getParameterMap() %&gt;</td>
	     	<td>&lt;%=request.getParameterMap() %&gt;</td>
	     	<td>{user.name=[Ljava.lang.String;@13a1324, age=[Ljava.lang.String;@154f6ff, name=[Ljava.lang.String;@1d2052b, struts.token.name=[Ljava.lang.String;@123fab3, struts.token=[Ljava.lang.String;@1202d8a, user.age=[Ljava.lang.String;@18df2e4}</td>
	     	<td>&lt;input name="name" value=""&gt;或url?name=xxxxx</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td>扩展用法：&lt;%=request.getParameterMap().get("name") %&gt;，结果为[Ljava.lang.String;@1d2052b</td>
	     	<td></td>
	     </tr>
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">30</td>
	     	<td>EL表达式语言</td>
	     	<td>${paramValues } </td>
	     	<td>${paramValues } </td>
	     	<td>{user.name=[Ljava.lang.String;@13a1324, name=[Ljava.lang.String;@1d2052b, age=[Ljava.lang.String;@154f6ff, struts.token.name=[Ljava.lang.String;@123fab3, struts.token=[Ljava.lang.String;@1202d8a, user.age=[Ljava.lang.String;@18df2e4} </td>
	     	<td>同上</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td>扩展用法：参见第2行。<br/>
	     	（1）输出参数对象：${paramValues.name }，结果：[Ljava.lang.String;@1d2052b <br/>
	     	（2）输出参数的属性值：${paramValues.name[0] }，或 ${paramValues['name'][0] } ，结果为：cba，或cba 
	     	</td>
	     	<td>JSP页面支持EL表达式</td>
	     </tr>
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">31</td>
	     	<td>OGNL表达式语言</td>
	     	<td>${parameters } </td>
	     	<td>${parameters } </td>
	     	<td>{user.name=[Ljava.lang.String;@13a1324, age=[Ljava.lang.String;@154f6ff, name=[Ljava.lang.String;@1d2052b, struts.token.name=[Ljava.lang.String;@123fab3, struts.token=[Ljava.lang.String;@1202d8a, user.age=[Ljava.lang.String;@18df2e4} </td>
	     	<td>同上</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td>扩展用法：参见第4行。<br/>
	     	（1）输出参数对象：${parameters.name }，结果：[Ljava.lang.String;@1d2052b <br/>
	     	（2）输出参数的属性值：${parameters.name[0] }，或 ${parameters['name'][0] } ，结果为：cba，或cba 
	     	</td>
	     	<td>JSP页面支持OGNL表达式</td>
	     </tr>
	     
	     <!-- 测试获取所有的请求头 （Map）-->
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">32</td>
	     	<td rowspan="3">测试获取所有的请求头（Map）</td>
	     	<td>Java脚本</td>
	     	<td>&lt;%=request.getHeaderNames() %&gt;</td>
	     	<td>&lt;%=request.getHeaderNames() %&gt;</td>
	     	<td>org.apache.tomcat.util.http.NamesEnumerator@4568f8</td>
	     	<td>请求头不需要赋值</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td>扩展用法：&lt;%=request.getHeaderNames().nextElement() %&gt;，结果为host</td>
	     	<td></td>
	     </tr>
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">33</td>
	     	<td>EL表达式语言</td>
	     	<td>${headerValues } </td>
	     	<td>${headerValues }</td>
	     	<td>{cookie=[Ljava.lang.String;@ee90b1, connection=[Ljava.lang.String;@5d8e63, accept-language=[Ljava.lang.String;@2f2591, host=[Ljava.lang.String;@14b8c21, accept=[Ljava.lang.String;@dcdeae, user-agent=[Ljava.lang.String;@9f9afb, referer=[Ljava.lang.String;@780024, accept-encoding=[Ljava.lang.String;@515979}</td>
	     	<td>同上</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td>扩展用法：参见第26行。<br/>
	     	（1）输出属性对象：${headerValues.host }，结果为[Ljava.lang.String;@c92575 <br/>
	     	（2）输出属性值：方法一：${headerValues.host[0] }或${headerValues.host[0] }，方法二：${headerValues['host'][0] }或${headerValues['host'][0] }，这四种方式的结果都为localhost:8080 
	     	</td>
	     	<td>JSP页面支持EL表达式</td>
	     </tr>
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">34</td>
	     	<td>OGNL表达式语言</td>
	     	<td>${header } </td>
	     	<td>${header } </td>
	     	<td>{cookie=cc=cccccc; JSESSIONID=1369F6CC45661AAC4887B5E441AA919D, connection=keep-alive, accept-language=zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3, host=localhost:8080, accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8, user-agent=Mozilla/5.0 (Windows NT 5.1; rv:24.0) Gecko/20100101 Firefox/24.0, referer=http://localhost:8080/ognl4svn/ognl_input.jsp, accept-encoding=gzip, deflate} </td>
	     	<td>同上</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td>扩展用法：参见第4行。<br/>
	     	（1）输出参数对象：${parameters.name }，结果：[Ljava.lang.String;@1d2052b <br/>
	     	（2）输出参数的属性值：${parameters.name[0] }，或 ${parameters['name'][0] } ，结果为：cba，或cba 
	     	</td>
	     	<td>JSP页面支持OGNL表达式</td>
	     </tr>
	     
	     <!-- 测试获取请求的参数字符串-->
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">35</td>
	     	<td rowspan="2">测试获取请求的参数字符串</td>
	     	<td>EL表达式语言</td>
	     	<td>${pageContext.request.queryString } </td>
	     	<td>${pageContext.request.queryString } </td>
	     	<td>struts.token.name=struts.token&struts.token=LHEBSZURJD1OADKG77QUZ9BC1I18A8ZE&name=cba&age=20&user.name=abc&user.age=123 </td>
	     	<td>同上</td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td></td>
	     	<td>JSP页面支持EL表达式</td>
	     </tr>
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">36</td>
	     	<td>OGNL表达式语言</td>
	     	<td>${request['javax.servlet.forward.query_string'] } </td>
	     	<td>${request['javax.servlet.forward.query_string'] } </td>
	     	<td>struts.token.name=struts.token&struts.token=LHEBSZURJD1OADKG77QUZ9BC1I18A8ZE&name=cba&age=20&user.name=abc&user.age=123 </td>
	     	<td></td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td></td>
	     	<td>JSP页面支持OGNL表达式</td>
	     </tr>
	     
	     <!-- 获取请求的URL，但不包括请求之参数字符串-->
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">37</td>
	     	<td rowspan="2">获取请求的URL，但不包括请求之参数字符串</td>
	     	<td>EL表达式语言</td>
	     	<td>${pageContext.request.requestURL } </td>
	     	<td>${pageContext.request.requestURL } </td>
	     	<td>http://localhost:8080/ognl4svn/ognl_result.jsp </td>
	     	<td></td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td></td>
	     	<td>JSP页面支持EL表达式</td>
	     </tr>
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">38</td>
	     	<td>OGNL表达式语言</td>
	     	<td>${request['javax.servlet.forward.request_uri'] } </td>
	     	<td>${request['javax.servlet.forward.request_uri'] } </td>
	     	<td>/ognl4svn/ognlAction.action </td>
	     	<td></td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td></td>
	     	<td>JSP页面支持OGNL表达式</td>
	     </tr>
	     
	     <!-- 获取请求的URI-->
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">39</td>
	     	<td rowspan="2">获取请求的URI</td>
	     	<td>EL表达式语言</td>
	     	<td>${pageContext.request.requestURI } </td>
	     	<td>${pageContext.request.requestURI } </td>
	     	<td>/ognl4svn/ognl_result.jsp </td>
	     	<td></td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td></td>
	     	<td>JSP页面支持EL表达式</td>
	     </tr>
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">40</td>
	     	<td>OGNL表达式语言</td>
	     	<td>${request['javax.servlet.forward.request_uri'] } </td>
	     	<td>${request['javax.servlet.forward.request_uri'] } </td>
	     	<td>/ognl4svn/ognlAction.action </td>
	     	<td></td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td></td>
	     	<td>JSP页面支持OGNL表达式</td>
	     </tr>
	     
	     <!-- 获取部署的Web应用名称（上下文根路径）-->
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">41</td>
	     	<td rowspan="2">获取部署的Web应用名称（上下文根路径）</td>
	     	<td>EL表达式语言</td>
	     	<td>${pageContext.request.contextPath } </td>
	     	<td>${pageContext.request.contextPath } </td>
	     	<td>/ognl4svn </td>
	     	<td></td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td></td>
	     	<td>JSP页面支持EL表达式</td>
	     </tr>
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">42</td>
	     	<td>OGNL表达式语言</td>
	     	<td>${request['javax.servlet.forward.context_path'] } </td>
	     	<td>${request['javax.servlet.forward.context_path'] } </td>
	     	<td>/ognl4svn </td>
	     	<td></td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td></td>
	     	<td>JSP页面支持OGNL表达式</td>
	     </tr>
	     
	     <!-- 获取请求HTTP的方法(GET、POST) -->
	     <tr>
	     	<td style="text-align: center;font-weight: bolder;">43</td>
	     	<td>获取请求HTTP的方法(GET、POST)</td>
	     	<td>EL表达式语言</td>
	     	<td>${pageContext.request.method } </td>
	     	<td>${pageContext.request.method } </td>
	     	<td>GET </td>
	     	<td></td>
	     	<td style="color: blue;font-weight: bolder;">YES</td>
	     	<td></td>
	     	<td>JSP页面支持EL表达式</td>
	     </tr>
     </table>
     
     <!-- Struts2调试 -->
     <script type="text/javascript">
<!--
    function toggleDebug(debugId) {
        var debugDiv = document.getElementById(debugId);
        if (debugDiv) {
            var display = debugDiv.style.display;
            if (display == 'none') {
                debugDiv.style.display = 'block';
            } else if (display == 'block') {
                debugDiv.style.display = 'none';
            }
        }
    }
-->
</script>
<p />

<a href="#" onclick="toggleDebug('debug');return false;">[Debug]</a>
<div style="display:none" id="debug">
<h2>Struts ValueStack Debug</h2>
<p />

<h3>Value Stack Contents</h3>
<table border="0" cellpadding="2" cellspacing="0" width="400" bgcolor="#DDDDDD">
    <tr><th>Object</th><th>Property Name</th><th>Property Value</th></tr>

    <tr>
        <td rowspan="11">com.ognl.OgnlAction</td>

              
            <td bgcolor="#CCCCCC">texts</td>
            <td bgcolor="#CCCCCC">null</td>
    </tr>
              
            <td bgcolor="#BBBBBB">actionErrors</td>
            <td bgcolor="#BBBBBB">[]</td>
    </tr>
              
            <td bgcolor="#CCCCCC">errors</td>
            <td bgcolor="#CCCCCC">{}</td>
    </tr>
              
            <td bgcolor="#BBBBBB">fieldErrors</td>
            <td bgcolor="#BBBBBB">{}</td>
    </tr>
              
            <td bgcolor="#CCCCCC">errorMessages</td>
            <td bgcolor="#CCCCCC">[]</td>
    </tr>
              
            <td bgcolor="#BBBBBB">container</td>
            <td bgcolor="#BBBBBB">There is no read method for container</td>
    </tr>
              
            <td bgcolor="#CCCCCC">name</td>
            <td bgcolor="#CCCCCC">null</td>
    </tr>
              
            <td bgcolor="#BBBBBB">locale</td>
            <td bgcolor="#BBBBBB">zh_CN</td>
    </tr>
              
            <td bgcolor="#CCCCCC">age</td>
            <td bgcolor="#CCCCCC">null</td>
    </tr>
              
            <td bgcolor="#BBBBBB">actionMessages</td>
            <td bgcolor="#BBBBBB">[]</td>
    </tr>
              
            <td bgcolor="#CCCCCC">user</td>
            <td bgcolor="#CCCCCC">null</td>
    </tr>
    <tr>
        <td rowspan="1">com.opensymphony.xwork2.DefaultTextProvider</td>

              
            <td bgcolor="#BBBBBB">texts</td>
            <td bgcolor="#BBBBBB">null</td>
    </tr>
</table>
<p />

<h3>Stack Context</h3>
<i>These items are available using the #key notation</i>
<table border="0" cellpadding="2" cellspacing="0" width="400" bgcolor="#DDDDDD">
    <tr>
        <th>Key</th><th>Value</th>
    </tr>

    <tr bgcolor="#CCCCCC">
        <td>com.opensymphony.xwork2.dispatcher.HttpServletRequest</td><td>org.apache.struts2.dispatcher.StrutsRequestWrapper@c84051</td>
    </tr>
    <tr bgcolor="#BBBBBB">
        <td>application</td><td>{abcd=12358, org.apache.catalina.resources=org.apache.naming.resources.ProxyDirContext@1194cf5, org.apache.jasper.runtime.JspApplicationContextImpl=org.apache.jasper.runtime.JspApplicationContextImpl@779dce, freemarker.Configuration=freemarker.template.Configuration@13ba312, org.apache.catalina.jsp_classpath=/D:/00MySoft/apache-tomcat-6.0.37/webapps/ognl4svn/WEB-INF/classes/;/D:/00MySoft/apache-tomcat-6.0.37/webapps/ognl4svn/WEB-INF/lib/commons-fileupload-1.2.2.jar;/D:/00MySoft/apache-tomcat-6.0.37/webapps/ognl4svn/WEB-INF/lib/commons-io-2.0.1.jar;/D:/00MySoft/apache-tomcat-6.0.37/webapps/ognl4svn/WEB-INF/lib/commons-lang3-3.1.jar;/D:/00MySoft/apache-tomcat-6.0.37/webapps/ognl4svn/WEB-INF/lib/freemarker-2.3.19.jar;/D:/00MySoft/apache-tomcat-6.0.37/webapps/ognl4svn/WEB-INF/lib/javassist-3.11.0.GA.jar;/D:/00MySoft/apache-tomcat-6.0.37/webapps/ognl4svn/WEB-INF/lib/jstl-1.2.jar;/D:/00MySoft/apache-tomcat-6.0.37/webapps/ognl4svn/WEB-INF/lib/ognl-3.0.5.jar;/D:/00MySoft/apache-tomcat-6.0.37/webapps/ognl4svn/WEB-INF/lib/struts2-core-2.3.3.jar;/D:/00MySoft/apache-tomcat-6.0.37/webapps/ognl4svn/WEB-INF/lib/xwork-core-2.3.3.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/;/D:/00MySoft/apache-tomcat-6.0.37/lib/annotations-api.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/catalina-ant.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/catalina-ha.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/catalina-tribes.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/catalina.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/ecj-4.2.2.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/el-api.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/jasper-el.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/jasper.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/jsp-api.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/servlet-api.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/tomcat-coyote.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/tomcat-dbcp.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/tomcat-i18n-es.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/tomcat-i18n-fr.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/tomcat-i18n-ja.jar;/D:/00MySoft/apache-tomcat-6.0.37/bin/bootstrap.jar;/C:/Java/jdk1.6.0_41/lib/tools.jar;/C:/Java/jdk1.6.0_41/jre/lib/ext/dnsns.jar;/C:/Java/jdk1.6.0_41/jre/lib/ext/sunjce_provider.jar;/C:/Java/jdk1.6.0_41/jre/lib/ext/sunmscapi.jar;/C:/Java/jdk1.6.0_41/jre/lib/ext/sunpkcs11.jar;/C:/Java/jdk1.6.0_41/jre/lib/ext/localedata.jar, org.apache.AnnotationProcessor=org.apache.catalina.util.DefaultAnnotationProcessor@1cf2ef6, javax.servlet.context.tempdir=D:\00MySoft\apache-tomcat-6.0.37\work\Catalina\localhost\ognl4svn, aa=aaaaaaaaaa, .freemarker.JspTaglibs=freemarker.ext.jsp.TaglibFactory@b7ad3, org.apache.catalina.WELCOME_FILES=[Ljava.lang.String;@14e8d67, .freemarker.Application=freemarker.ext.servlet.ServletContextHashModel@1acdcb9}</td>
    </tr>
    <tr bgcolor="#CCCCCC">
        <td>com.opensymphony.xwork2.ActionContext.locale</td><td>zh_CN</td>
    </tr>
    <tr bgcolor="#BBBBBB">
        <td>com.opensymphony.xwork2.dispatcher.HttpServletResponse</td><td>org.apache.catalina.connector.ResponseFacade@13790eb</td>
    </tr>
    <tr bgcolor="#CCCCCC">
        <td>com.opensymphony.xwork2.ActionContext.name</td><td>ognlAction</td>
    </tr>
    <tr bgcolor="#BBBBBB">
        <td>current.property.path</td><td>null</td>
    </tr>
    <tr bgcolor="#CCCCCC">
        <td>com.opensymphony.xwork2.ActionContext.application</td><td>{abcd=12358, org.apache.catalina.resources=org.apache.naming.resources.ProxyDirContext@1194cf5, org.apache.jasper.runtime.JspApplicationContextImpl=org.apache.jasper.runtime.JspApplicationContextImpl@779dce, freemarker.Configuration=freemarker.template.Configuration@13ba312, org.apache.catalina.jsp_classpath=/D:/00MySoft/apache-tomcat-6.0.37/webapps/ognl4svn/WEB-INF/classes/;/D:/00MySoft/apache-tomcat-6.0.37/webapps/ognl4svn/WEB-INF/lib/commons-fileupload-1.2.2.jar;/D:/00MySoft/apache-tomcat-6.0.37/webapps/ognl4svn/WEB-INF/lib/commons-io-2.0.1.jar;/D:/00MySoft/apache-tomcat-6.0.37/webapps/ognl4svn/WEB-INF/lib/commons-lang3-3.1.jar;/D:/00MySoft/apache-tomcat-6.0.37/webapps/ognl4svn/WEB-INF/lib/freemarker-2.3.19.jar;/D:/00MySoft/apache-tomcat-6.0.37/webapps/ognl4svn/WEB-INF/lib/javassist-3.11.0.GA.jar;/D:/00MySoft/apache-tomcat-6.0.37/webapps/ognl4svn/WEB-INF/lib/jstl-1.2.jar;/D:/00MySoft/apache-tomcat-6.0.37/webapps/ognl4svn/WEB-INF/lib/ognl-3.0.5.jar;/D:/00MySoft/apache-tomcat-6.0.37/webapps/ognl4svn/WEB-INF/lib/struts2-core-2.3.3.jar;/D:/00MySoft/apache-tomcat-6.0.37/webapps/ognl4svn/WEB-INF/lib/xwork-core-2.3.3.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/;/D:/00MySoft/apache-tomcat-6.0.37/lib/annotations-api.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/catalina-ant.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/catalina-ha.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/catalina-tribes.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/catalina.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/ecj-4.2.2.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/el-api.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/jasper-el.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/jasper.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/jsp-api.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/servlet-api.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/tomcat-coyote.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/tomcat-dbcp.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/tomcat-i18n-es.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/tomcat-i18n-fr.jar;/D:/00MySoft/apache-tomcat-6.0.37/lib/tomcat-i18n-ja.jar;/D:/00MySoft/apache-tomcat-6.0.37/bin/bootstrap.jar;/C:/Java/jdk1.6.0_41/lib/tools.jar;/C:/Java/jdk1.6.0_41/jre/lib/ext/dnsns.jar;/C:/Java/jdk1.6.0_41/jre/lib/ext/sunjce_provider.jar;/C:/Java/jdk1.6.0_41/jre/lib/ext/sunmscapi.jar;/C:/Java/jdk1.6.0_41/jre/lib/ext/sunpkcs11.jar;/C:/Java/jdk1.6.0_41/jre/lib/ext/localedata.jar, org.apache.AnnotationProcessor=org.apache.catalina.util.DefaultAnnotationProcessor@1cf2ef6, javax.servlet.context.tempdir=D:\00MySoft\apache-tomcat-6.0.37\work\Catalina\localhost\ognl4svn, aa=aaaaaaaaaa, .freemarker.JspTaglibs=freemarker.ext.jsp.TaglibFactory@b7ad3, org.apache.catalina.WELCOME_FILES=[Ljava.lang.String;@14e8d67, .freemarker.Application=freemarker.ext.servlet.ServletContextHashModel@1acdcb9}</td>
    </tr>
    <tr bgcolor="#BBBBBB">
        <td>__component_stack</td><td>[org.apache.struts2.components.Debug@f6a711]</td>
    </tr>
    <tr bgcolor="#CCCCCC">
        <td>last.property.accessed</td><td>null</td>
    </tr>
    <tr bgcolor="#BBBBBB">
        <td>attr</td><td>org.apache.struts2.util.AttributeMap@1525aeb</td>
    </tr>
    <tr bgcolor="#CCCCCC">
        <td>com.opensymphony.xwork2.ActionContext.container</td><td>com.opensymphony.xwork2.inject.ContainerImpl@4aad7f</td>
    </tr>
    <tr bgcolor="#BBBBBB">
        <td>com.opensymphony.xwork2.dispatcher.ServletContext</td><td>org.apache.catalina.core.ApplicationContextFacade@1fef1a0</td>
    </tr>
    <tr bgcolor="#CCCCCC">
        <td>com.opensymphony.xwork2.ActionContext.session</td><td>{ss=ssssssss}</td>
    </tr>
    <tr bgcolor="#BBBBBB">
        <td>com.opensymphony.xwork2.dispatcher.PageContext</td><td>org.apache.jasper.runtime.PageContextImpl@a97cec</td>
    </tr>
    <tr bgcolor="#CCCCCC">
        <td>com.opensymphony.xwork2.ActionContext.actionInvocation</td><td>com.opensymphony.xwork2.DefaultActionInvocation@1cf16ac</td>
    </tr>
    <tr bgcolor="#BBBBBB">
        <td>session</td><td>{ss=ssssssss}</td>
    </tr>
    <tr bgcolor="#CCCCCC">
        <td>com.opensymphony.xwork2.util.ValueStack.ValueStack</td><td>com.opensymphony.xwork2.ognl.OgnlValueStack@d9b7c1</td>
    </tr>
    <tr bgcolor="#BBBBBB">
        <td>__requestWrapper.getAttribute</td><td>false</td>
    </tr>
    <tr bgcolor="#CCCCCC">
        <td>last.bean.accessed</td><td>null</td>
    </tr>
    <tr bgcolor="#BBBBBB">
        <td>request</td><td>{javax.servlet.forward.query_string=struts.token.name=struts.token&amp;struts.token=LHEBSZURJD1OADKG77QUZ9BC1I18A8ZE&amp;name=cba&amp;age=20&amp;user.name=abc&amp;user.age=123, struts.actionMapping=org.apache.struts2.dispatcher.mapper.ActionMapping@1446579, javax.servlet.forward.servlet_path=/ognlAction.action, struts.valueStack=com.opensymphony.xwork2.ognl.OgnlValueStack@d9b7c1, rr=rrrrrrrr, .freemarker.Request=freemarker.ext.servlet.HttpRequestHashModel@14c7f77, javax.servlet.forward.request_uri=/ognl4svn/ognlAction.action, .freemarker.RequestParameters=freemarker.ext.servlet.HttpRequestParametersHashModel@1621fe6, struts.request_uri=/ognl4svn/ognlAction.action, __cleanup_recursion_counter=1, javax.servlet.forward.context_path=/ognl4svn, .freemarker.TemplateModel={Parameters=freemarker.ext.servlet.HttpRequestParametersHashModel@1621fe6, tag=org.apache.struts2.components.Debug@f6a711, Request=freemarker.ext.servlet.HttpRequestHashModel@14c7f77, .freemarker.RequestParameters=freemarker.ext.servlet.HttpRequestParametersHashModel@1621fe6, JspTaglibs=freemarker.ext.jsp.TaglibFactory@b7ad3, struts=org.apache.struts2.util.StrutsUtil@11c537f, response=org.apache.catalina.connector.ResponseFacade@13790eb, s=org.apache.struts2.views.freemarker.tags.StrutsModels@adcae8, themeProperties={parent=simple}, ognl=org.apache.struts2.views.jsp.ui.OgnlTool@ba22e1, session=org.apache.catalina.session.StandardSessionFacade@4e37fb, Session=freemarker.ext.servlet.HttpSessionHashModel@1e4605c, Application=freemarker.ext.servlet.ServletContextHashModel@1acdcb9, request=org.apache.struts2.dispatcher.StrutsRequestWrapper@c84051, action=com.ognl.OgnlAction@727896, base=/ognl4svn, stack=com.opensymphony.xwork2.ognl.OgnlValueStack@d9b7c1}, struts.view_uri=/ognl_result.jsp}</td>
    </tr>
    <tr bgcolor="#CCCCCC">
        <td>action</td><td>com.ognl.OgnlAction@727896</td>
    </tr>
    <tr bgcolor="#BBBBBB">
        <td>struts.actionMapping</td><td>org.apache.struts2.dispatcher.mapper.ActionMapping@1446579</td>
    </tr>
    <tr bgcolor="#CCCCCC">
        <td>parameters</td><td>{user.name=[Ljava.lang.String;@13a1324, age=[Ljava.lang.String;@154f6ff, name=[Ljava.lang.String;@1d2052b, struts.token.name=[Ljava.lang.String;@123fab3, struts.token=[Ljava.lang.String;@1202d8a, user.age=[Ljava.lang.String;@18df2e4}</td>
    </tr>
    <tr bgcolor="#BBBBBB">
        <td>com.opensymphony.xwork2.ActionContext.parameters</td><td>{user.name=[Ljava.lang.String;@13a1324, name=[Ljava.lang.String;@1d2052b, age=[Ljava.lang.String;@154f6ff, struts.token.name=[Ljava.lang.String;@123fab3, struts.token=[Ljava.lang.String;@1202d8a, user.age=[Ljava.lang.String;@18df2e4}</td>
    </tr>
</table>
</div>
     
	</body>
</html>
